package com.jxpowernode.bitcon.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;

/**
 * @Author: Lixuewei
 * @Email:1410511702@qq.com
 * @Desc: 该类是一个工具类，用于封装各种类型的hash算法
 * @Date: 2021/12/20 15:16
 */
public class Hash {

    /**
     * 该方法用于实现hash256算法
     * @param data 要加密的字节数组
     * @return 返回hash结过
     */
    public static byte[] SHA256(byte[] data){
        //消息摘要
        try {
            MessageDigest digest =MessageDigest.getInstance("SHA-256");
            digest.update(data);
            return digest.digest();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return  null;
    }

    /**
     * 该方法用于实现RipeMD160算法
     * @param data 要加密的数据
     * @return 返回hash结果
     */
    public static byte[] RipeMD160(byte[] data){
        try {
            MessageDigest rim = MessageDigest.getInstance("RipeMD160", "BC");
            rim.update(data);
            return  rim.digest(data);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        }
        return null;
    }

}
